#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <ctype.h>

// Function declaration
int isLegalNumString(char *a, int digitIndex1st, int digitIndexLast)
{
    int numE = 0, indexE = -1;
    int numPointer = 0, indexPointer = -1;

    for (int i = digitIndex1st; i <= digitIndexLast; i++)
    {
        if (a[i] != 'e' && a[i] != 'E' && a[i] != '.' && !isdigit(a[i]) && a[i] != '+' && a[i] != '-')
        {
            return 0;
        }
        else if (a[i] == 'e' || a[i] == 'E')
        {
            numE++;
            if (indexE == -1)
            {
                indexE = i;
            }
        }
        else if (a[i] == '.')
        {
            numPointer++;
            if (indexPointer == -1)
            {
                indexPointer = i;
            }
        }

        if (numPointer > 1 || numE > 1 || (indexPointer > indexE && indexE != -1))
        {
            return 0;
        }
    }
    return 1;
}

// Main function
int main()
{
    char a[100];
    while (scanf("%s", a) != EOF)
    {
        int len = strlen(a);
        int digitIndex1st = -1;
        int digitIndexLast = -1;
        int eIndex = -1;
        float part1 = 0,part2 = 0,result = 0, signal1 = +1.0,signal2 = +1.0;
        int i = 0,j=0;
        while (1)
        {
            digitIndex1st = -1;
            digitIndexLast = -1;
            eIndex = -1;
            part1 = 0;
            part2 = 0;
            result = 0;
            i = j;

            for (; i < len; i++)
            {
                if (isdigit(a[i]) && digitIndex1st == -1)
                {
                    digitIndex1st = i;
                }

                if ((a[i] == 'e' || a[i] == 'E') && digitIndex1st != -1)
                {
                    eIndex = i;
                }

                if (eIndex != -1 && isdigit(a[i]) && !isdigit(a[i + 1]))
                {
                    digitIndexLast = i;
                    break;
                }
            }

            if (isLegalNumString(a, digitIndex1st, digitIndexLast))
            {
                int charToInt = 0;

                for (int i = digitIndex1st; i < eIndex; i++)
                {
                    if (a[i] != '.')
                    {
                        charToInt = a[i] - 48;
                        part1 = charToInt + part1 * 10;
                    }
                }

                if (a[digitIndex1st] == '-')
                {
                    signal1 = -1;
                }

                int pointOffset = eIndex - digitIndex1st - 2;
                part1 = signal1 * part1 / (float)(pow(10, pointOffset));

                int state = 0;
                if (!isdigit(a[eIndex + 1]))
                {
                    if (a[eIndex + 1] == '-')
                    {
                        signal2 = -1;
                    }
                    state = 1;
                }

                for (int j = eIndex + state + 1; j <= digitIndexLast; j++)
                {
                    charToInt = a[j] - 48;
                    part2 = charToInt + part2 * 10;
                    part2 *= signal2;
                }

                result += part1 * pow(10, part2);
                printf("%.6f\n", result);
                break;
            }

            j++;
        }
    }

    return 0;
}
